﻿define(function (require, exports, module) { return function (jQuery) {
//test("module without setup/teardown (default)", function() {
//	expect(1);
//	ok(true);
//});
//test("expect in test", 3, function() {
//	ok(true);
//	ok(true);
//	ok(true);
//});
//test("expect in test", 1, function() {
//	ok(true);
//});
//module("setup test", {
//	setup: function() {
//		ok(true);
//	}
//});
//test("module with setup", function() {
//	expect(2);
//	ok(true);
//});
//test("module with setup, expect in test call", 2, function() {
//	ok(true);
//});

//var state;
//module("setup/teardown test", {
//	setup: function() {
//		state = true;
//		ok(true);
//	},
//	teardown: function() {
//		ok(true);
//	}
//});
//test("module with setup/teardown", function() {
//	expect(3);
//	ok(true);
//});
//module("setup/teardown test 2");
//test("module without setup/teardown", function() {
//	expect(1);
//	ok(true);
//});

//state = 'fail';
//module("teardown and stop", {
//	teardown: function() {
//		equal(state, "done", "Test teardown.");
//	}
//});
//test("teardown must be called after test ended",1, function() {
//	stop();
//	setTimeout(function() {
//		state = "done";
//		start();
//	}, 13);
//});
//module("async setup test", {
//	setup: function() {
//		stop();
//		setTimeout(function(){
//			ok(true);
//			start();
//		}, 500);
//	}
//});
//asyncTest("module with async setup",2, function() {
//	ok(true);
//	start();
//});
//module("async teardown test", {
//	teardown: function() {
//		stop();
//		setTimeout(function(){
//			ok(true);
//			start();
//		}, 500);
//	}
//});
//asyncTest("module with async teardown",2, function() {
//	ok(true);
//	start();
//});
//module("asyncTest");
//asyncTest("asyncTest",2, function() {
//	ok(true);
//	setTimeout(function() {
//		state = "done";
//		ok(true);
//		start();
//	}, 13);
//});
//asyncTest("asyncTest", 2, function() {
//	ok(true);
//	setTimeout(function() {
//		state = "done";
//		ok(true);
//		start();
//	}, 13);
//});
//test("sync", 2, function() {
//	stop();
//	setTimeout(function() {
//		ok(true);
//		start();
//	}, 13);
//	stop();
//	setTimeout(function() {
//		ok(true);
//		start();
//	}, 125);
//});

//module("save scope", {
//	setup: function() {
//		this.foo = "bar";
//	},
//	teardown: function() {
//		deepEqual(this.foo, "bar");
//	}
//});
//test("scope check", function() {
//	expect(2);
//	deepEqual(this.foo, "bar");
//});
//module("simple testEnvironment setup", {
//	foo: "bar",
//	bugid: "#5311" // example of meta-data
//});
//test("scope check", function() {
//	deepEqual(this.foo, "bar");
//});
//test("modify testEnvironment",function() {
//	this.foo="hamster";
//});
//test("testEnvironment reset for next test",function() {
//	deepEqual(this.foo, "bar");
//});
//module("testEnvironment with object", {
//	options:{
//		recipe:"soup",
//		ingredients:["hamster","onions"]
//	}
//});
//test("scope check", function() {
//	deepEqual(this.options, {recipe:"soup",ingredients:["hamster","onions"]}) ;
//});
//test("modify testEnvironment",function() {
//	// since we do a shallow copy, the testEnvironment can be modified
//	this.options.ingredients.push("carrots");
//});
//test("testEnvironment reset for next test",function() {
//	deepEqual(this.options, {recipe:"soup",ingredients:["hamster","onions","carrots"]}, "Is this a bug or a feature? Could do a deep copy") ;
//});

//module("testEnvironment tests");
//function makeurl() {
//	var testEnv = QUnit.current_testEnvironment;
//	var url = testEnv.url || 'http://example.com/search';
//	var q   = testEnv.q   || 'a search test';
//	return url + '?q='+encodeURIComponent(q);
//}
//test("makeurl working",function() {
//	equal( QUnit.current_testEnvironment, this, 'The current testEnvironment is global');
//	equal( makeurl(), 'http://example.com/search?q=a%20search%20test', 'makeurl returns a default url if nothing specified in the testEnvironment');
//});
//module("testEnvironment with makeurl settings", {
//	url: 'http://google.com/',
//	q: 'another_search_test'
//});
//test("makeurl working with settings from testEnvironment", function() {
//	equal( makeurl(), 'http://google.com/?q=another_search_test', 'rather than passing arguments, we use test metadata to form the url');
//});
//test("each test can extend the module testEnvironment", {
//	q:'hamstersoup'
//}, function() {
//	equal( makeurl(), 'http://google.com/?q=hamstersoup', 'url from module, q from test');	
//});

//module("jsDump");
//test("jsDump output", function() {
//	equals( QUnit.jsDump.parse([1, 2]), "[\n  1,\n  2\n]" );
//	equals( QUnit.jsDump.parse({top: 5, left: 0}), "{\n  \"top\": 5,\n  \"left\": 0\n}" );
//	if (typeof document !== 'undefined' && document.getElementById("qunit-header")) {
//		equals( QUnit.jsDump.parse(document.getElementById("qunit-header")), "<h1 id=\"qunit-header\"></h1>" );
//		equals( QUnit.jsDump.parse(document.getElementsByTagName("h1")), "[\n  <h1 id=\"qunit-header\"></h1>\n]" );
//	}
//});

//module("assertions");
//test("raises",function() {
//	function CustomError( message ) {
//		this.message = message;
//	}
//	CustomError.prototype.toString = function() {
//		return this.message;	
//	};
//	raises(
//		function() {
//			throw "error"
//		}
//	);
//	raises(
//		function() {
//			throw "error"
//		},
//		'raises with just a message, no expected'
//	);
//	raises(
//		function() {
//			throw new CustomError();
//		},
//		CustomError,
//		'raised error is an instance of CustomError'
//	);
//	raises(
//		function() {
//			throw new CustomError("some error description");
//		},
//		/description/,
//		"raised error message contains 'description'"
//	);
//	raises(
//		function() {
//			throw new CustomError("some error description");
//		},
//		function( err ) {
//			if ( (err instanceof CustomError) && /description/.test(err) ) {
//				return true;
//			}
//		},
//		"custom validation function"		
//	);
//});

//module("fixture");
//test("setup", function() {
//	document.getElementById("qunit-fixture").innerHTML = "foobar";
//});
//test("basics", function() {
//	equal( document.getElementById("qunit-fixture").innerHTML, "test markup", "automatically reset" );
//});

//module("custom assertions");
//function mod2(value, expected, message) {
//	var actual = value % 2;
//	QUnit.push(actual == expected, actual, expected, message);
//}
//test("mod2", function() {
//	mod2(2, 0, "2 % 2 == 0");
//	mod2(3, 1, "3 % 2 == 1");
//})

//var reset = QUnit.reset;
//function afterTest() {
//	ok( false, "reset should not modify test status" );
//}
//module("reset");
//test("reset runs assertions", function() {
//	QUnit.reset = function() {
//		afterTest();
//		reset.apply( this, arguments );
//	};
//});
//test("reset runs assertions2", function() {
//	QUnit.reset = reset;
//});
}});
